In many computer systems with multiple devices, an arbitration is performed to provide access to a shared resource such as a shared memory. Different types of arbitration mechanisms are provided to enable arbitration between the different agents or requestors. Some systems use a fixed priority arbitration system in which different agents are allocated a particular priority. However, this can lead to unfairness in usage and starvation of one or more agent's ability to obtain access to the shared resource. Other arbitration systems provide for a round robin-based approach to allocating access to the shared resource.
In either event, the arbitration that is performed does not take into account factors regarding the shared resource such as its power state. As such, requests granted access to the shared resource cause the resource to exit a low power state, although the device does not require such immediate access to the shared resource. Accordingly, current arbitration systems suffer from various drawbacks.